// 1 资源：cpu 内存
/* console.log('tag', process) */

//console.log('tag', process.memoryUsage()) // 获取内存
/* rss: 18702336,   常驻内存
heapTotal: 4247552, 堆区
heapUsed: 2330368,  现在使用的内存大小
external: 788505,   底层占据的空间大小
arrayBuffers: 9382  一个独立的空间大小  可以通过 Buffer.alloc  改变*/

//console.log('tag', process.cpuUsage()) //获取cpu

// 2.运行环境 ：运行目录，node环境，cpu架构，用户环境，系统平台

console.log('tag', process.cwd()) // 获取工作路径
console.log('tag', process.version) // node环境（版本）
console.log('tag', process.versions) // node v8 uv zlib brotli ares modules nghttp2 napi 的版本
console.log('tag', process.arch) // cpu架构  x64
console.log('tag', process.env) // 用户环境(生产环境或者开发环境)
console.log('tag', process.platfrom) //系统平台

// 3.运行状态：启动参数，PID，运行时间
console.log('tag', process.argv) // 获取启动参数，返回一个数组(路径等)
console.log('tag', process.pid) // 获取PID
console.log('tag', process.uptime()) // 运行时间

// 4.事件

process.on('exit', (code) => {
  //监听退出事件，里面不能执行异步代码
  console.log('tag', code)
})

process.on('beforeExit', (code) => {
  //监听退出之前事件，可以写异步代码
  console.log('tag', code)
})

process.exit() // 执行退出，不会触发 beforeExit，并且在这后面的代码也不会执行

// 5 标准输出 输入 错误

console.log = function (data) {
  // 输出
  process.stdout.write('---' + data + '\n')
}

// 输入
process.stdin.pipe(process.stdout)
